<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 中间件继承  ---  寄生式继承
        //   创建一个中间构造函数  ， 这个构造函数的原型对象指向父类的原型对象    --- 实现原型对象的继承
        //   实例化一个中间构造函数 



        function Dog (color) {
            this.type = '狗子' ;
            this.say = '汪' ;
            this.color = color ;
        }

        Dog.prototype.speak = function() {
            console.log('hello world');
        }


        function KeJi(name , age , color) {
            this.name = name ;
            this.age = age ;

            // 想调用Dog的属性和方法
            // this.type = '狗子' ;
            // this.say = '汪' ;
            Dog.call(this , color) ;
        }


        // 空的构造函数 -- 没有任何的属性和方法
        function Fn() {} ;

        Fn.prototype = Dog.prototype ;     // 浅拷贝  Fn是一个不会使用到的构造函数


        KeJi.prototype = new Fn() ;

        const k = new KeJi('cc' ,3 , 'yellow') ;
        console.log(k);




    </script>
    
</body>
</html>